package com.own.component.util.database.base.parent;

import java.util.Arrays;
import java.util.Collection;

/**
 * BaseDatabaseTableColumnSqlProperty
 *
 * @author chenxueli
 * @date 2022-10-15 14:34:00
 */
public interface BaseDatabaseTableColumnSqlProperty extends BaseDatabaseSqlProperty {

    /**
     * 所有表查询语句
     */
    String tablesColumnSql();

    /**
     * 多个表查询语句
     *
     * @param tableNames 表名列表
     * @return 多个表字段查询语句
     */
    default String tablesColumnSql(String... tableNames) {
        return tablesColumnSql(Arrays.stream(tableNames).toList());
    }

    /**
     * 多个表查询语句
     *
     * @param tableNameList 表名列表
     * @return 多个表字段查询语句
     */
    default String tablesColumnSql(Collection<String> tableNameList) {
        return buildTableSql(tablesColumnSql(), tableNameList);
    }

}
